The present disclosure relates to software and, more particularly, to feature detection in images.
Feature detection is commonly used to merge multiple images into a single High Dynamic Range (HDR) image and for image “stitching” where two or more images are joined together along one or more borders. Merging and stitching depend on identification of common features in the images being manipulated in order to properly align the images. Generally speaking, image alignment can be done by first extracting distinctive features from each image to be aligned, establishing feature correspondence among the images, and then determining the geometric transformation to bring each image into alignment. For example, if images of a specific nature scene are captured by different cameras, common features in each image (e.g., an edge of a rock) can be used to transform the images to a common coordinate system so that a composite image can be created.
Representative feature extracting algorithms operate on grayscale or “intensity” images. For color images, the luminance channel is often used for feature extraction. When the luminance channel is not available, some algorithms use a single image color channel. For instance, the green channel in a Red, Green, Blue (RGB) image can be used as an approximation of an intensity image. But such images may not be robust against image noise or sensitive enough to preserve structures present in the image, including those structures that are present across different color channels. Additionally, typical feature exaction algorithms use fixed thresholds to select features which are commonly tuned to work well with images under normal exposure conditions. However, for under-exposed or over-exposed images—common for High Dynamic Range (HDR) images—the algorithms can perform poorly.